﻿Public Class IsciPrimBorcu2009
	Inherits Process

	'Dim Af As Hukuk.Af

	Public Overrides Sub GenericEvent(ByVal e As ProcessEventArgs)
		'Select Case e.EventType
		'	Case EventType.Initialize
		'		Text ="İşçi Taksitlendirme (2009 Affı)"
		'		InitialHelp = "İşyeri bilgisini girin."
		'		AddIsyeri()
		'		AddDate("pesintar", "Peşin Öde.Tar.", "nl", YMD(Today))
		'		StartBody()
		'		AddReport()
		'	Case EventType.ValidateForm
		'		Af = New Hukuk.Af(Local, Input("Isyeri"), Input("pesintar"))
		'		If Not Hukuk.Af.GenelIsyeriOku(Local, 2009, Input("Isyeri")).EOF Then
		'			If Confirm("Bu işyeri için daha önce bir ödeme planı hazırlanmıştı. Ödeme planını değiştirmek mi istiyorsunuz?") Then Af.Load() : Af.Save(Window, Local)
		'			ShowReport()
		'			Exit Sub
		'		End If
		'		Dim Result As String = ""
		'		If Af.IsEmpty Then
		'			Result = Ask("Ne yapmak istiyorsunuz?", "h|Prim borcu otomatik olarak hesaplansın.;m|Prim borcu manüel olarak girilsin.")
		'		Else
		'			Result = Ask("Bu işyeri için daha önce hesaplama yapılmış. Ne yapmak istiyorsunuz?", "s|Yapılan hesaplamayı gösterilsin.;dh|Yeniden hesaplama yapılsın.;dm|Hesaplama silinsin, prim borçları manüel olarak girilecek.")
		'		End If
		'		If Result = "" Then Exit Sub
		'		If Result = "dh" Or Result = "dm" Then If Not Confirm("Varolan hesaplamayı silmek istediğinizden emin misiniz?") Then Exit Sub Else Af.BordroHepsiniSil()
		'		If Result = "h" Or Result = "dh" Then
		'			Dim Dlg As New IsciBorcuHesaplama2009
		'			Dlg.Run(Window)
		'			If Dlg.Result <> "" Then
		'				Help = "!Yatırım borçları hesaplanıyor, lütfen bekleyin..."
		'Af.BorcHesapla(Mid(Dlg.Result, 1, 6), Mid(Dlg.Result, 7, 6))
		'				Report.Restart()
		'			End If
		'			Buttons.Show("Next")
		'		Else
		'			Report.Restart()
		'			Buttons.Show("Edit.Next")
		'		End If
		'		e.Result = True
		'	Case EventType.Edit
		'		Dim Prc As New AfBordroDuzenleme
		'		Prc.AddArgument("af", Af)
		'		Prc.Run(Window)
		'		If Not Prc.Result Then Exit Sub
		'		Report.Restart()
		'	Case EventType.Save
		'		If Not Af.Save(Window, Local) Then Exit Sub
		'		Dim Rapor As New OdemePlaniRaporuIsci2009
		'		Dim IsyeriNo As String = Input("Isyeri")
		'		Close()
		'		Rapor.AddArgument("isyerino", IsyeriNo)
		'		Rapor.Run(Window)
		'	Case EventType.CoverPage
		'		Report.PrintHeader("PRİM BORÇLARI ÖDEME PLANI")
		'		Report.SetColumns("İşyeri No.;Sicil No.;İşyeri Adı;Tehlike S.;Peşin Öde. Tar.", "2;3;6;2;2", "c;c;l;c;d", "-")
		'		Report.PrintHighlighted(Af.Isyeri.IsyeriNo, Af.Isyeri.SicilNo, Af.Isyeri.IsyeriAdi, Af.Isyeri.TehlikeSinifi, Input("pesintar"))
		'		Report.SkipLine()
		'		Report.SetColumns("", "3;2;2;2;2;2;2;2;2;2", "c;m;m;m;m;m;m;m;m;m", "--")
		'		Report.Print("<rs=2><c><g=1>Dönem", "<cs=3><c><g=1>Toplam Borç", "<cs=3><c><g=1>Peşin Ödenecek", "<cs=3><c><g=1>Taksitlendirilecek")
		'		Report.Print("<c><g=1>Anapara", "<c><g=1>Ceza (%30)", "<c><g=1>Toplam", "<c><g=1>Anapara", "<c><g=1>Ceza (%30)", "<c><g=1>Toplam", "<c><g=1>Anapara", "<c><g=1>Ceza (%30)", "<c><g=1>Toplam")
		'		For j As Integer = 0 To 2
		'			Dim Donem As String = Choose(j + 1, "<g=1>2000 Öncesi", "<g=1>2000 Sonrası", "<g=1>Toplam")
		'			Report.PrintHighlighted(Donem, Af.Toplam(j, 2, 0), Af.Toplam(j, 2, 1), Af.Toplam(j, 2, 2), Af.Toplam(j, 0, 0), Af.Toplam(j, 0, 1), Af.Toplam(j, 0, 2), Af.Toplam(j, 1, 0), Af.Toplam(j, 1, 1), Af.Toplam(j, 1, 2))
		'		Next
		'		Report.SkipLine()
		'	Case EventType.PageHeader
		'		Report.SetColumns("Bordro Tar.;Bordro;PEK Toplamı;Anapara;Ceza;İnd.Ceza;Toplam;P/T", "2;1;2;2;2;2;2;1", "d;c;m;m;m;m;m;c", "--")
		'	Case EventType.ReportDetail
		'		For Each Rs As DataRow In Af.Borclar.Rows
		'			Report.Print(Rs("bordrotar"), Rs("bordro"), Rs("pek"), Rs("anapara"), Rs("ceza") / 0.3, Rs("ceza"), Rs("anapara") + Rs("ceza"), Rs("tur"))
		'		Next
		'		Rs = Af.Borclar
		'		If Not Rs.Count = 0 Then Report.PrintTotal("", "", Rs.Sum("pek"), Rs.Sum("anapara"), Rs.Sum("ceza") / 0.3, Rs.Sum("ceza"), Rs.Sum("anapara") + Rs.Sum("ceza"), "")
		'		Buttons.Show("Edit.Next")
		'End Select
	End Sub

	'Sub OdemePlaniniDegistir()
	'	If Not Af.Save(Window, Local) Then Exit Sub
	'	Dim Process As New OdemePlaniGirisi
	'	Af.Load()
	'	Process.AddArgument("tur", "isyerino")
	'	Process.AddArgument("key", Input("Isyeri"))
	'	'Process.AddArgument("rs", Af.ode)
	'	Process.Run(Window)
	'	If Process.Result = "" Then Focus("Isyeri") : Exit Sub
	'	Rs.MoveFirst()
	'	Dim Dates = Split(Process.Result, ",")
	'	Dim i As Integer = 0
	'	Do Until Rs.EOF
	'		Hukuk.Af.OdemePlaniDegistirIsyeri(Local, 2009, Input("Isyeri"), Rs("donem"), CDate(Dates(i) & "/01"))
	'		i += 1
	'		Rs.MoveNext()
	'	Loop
	'	ShowReport()
	'End Sub

	Sub ShowReport()
		Dim Rapor As New OdemePlaniRaporuIsyeri2009
		Rapor.BranchSelection = True
		Rapor.AddArgument("isyeri", Input("Isyeri"))
		Window.Launch(Rapor)
		'Process.Run(Window)
		Close()
	End Sub

End Class

Class AfBordroDuzenleme
	Inherits ProcessDialog

	Public Overrides Sub GenericEvent(ByVal e As ProcessEventArgs)
		Select Case e.EventType
			Case EventType.Initialize
				Text = "Bordro Düzenleme"
				InitialHelp = "Ekle ve Sil butonlarıyla bordro ekleyip çıkarabilirsiniz."
				AddList()
				List.AddColumns("bordrotar(Bordro Tarihi;d;95),bordro(Bordro;c;55),pek(PEK Toplamı;m;90),anapara(Anapara;m;90),tamceza(Ceza;m;90),ceza(İnd.Ceza;m;90),toplam(Toplam;m;90),bos(;l;100%)")
				SetSize(720, 512)
			Case EventType.Shown
				List.DataSource = Arguments("af").Borclar
				Buttons.Show("Add.Delete.Save")
			Case EventType.Add
				Do
					Dim Process As New BorcBilgisiGiris2009
					Process.AddArgument("af", Arguments("af"))
					Process.Run(Me.Parent)
					If Not Process.Result Then Exit Do
					List.DataSource = Arguments("af").Borclar
					Modified = True
				Loop
			Case EventType.Delete
				If List.SelectedRows.Count = 0 Then Exit Sub
				If Not Confirm("Bu kaydı silmek istediğinizden emin misiniz?") Then Exit Sub
				Modified = True
				'CType(Arguments("af"), Hukuk.Af).BordroSil(List.SelectedRow("bordrotar"), List.SelectedRow("bordro"))
				List.RemoveSelected()
			Case EventType.Save
				Arguments("af").BordroKaydet()
				ReturnResult(Modified)
		End Select
	End Sub

End Class

Class BorcBilgisiGiris2009
	Inherits ProcessDialog

	Dim Bordro As Object = Split("D;E;C;H;L;X;Y", ";")

	Public Overrides Sub GenericEvent(ByVal e As ProcessEventArgs)

		Select Case e.EventType
			Case EventType.Initialize
				Text = "Bordro Girişi"
				InitialHelp = "Bordro tarihini ve ilgili bordroların PEK toplamını girin."
				AddField("@AyYil[name=Tarih;label=Bordro Tarihi]", "nl")
				Dim NewLine As Boolean = False
				For Each Item As Object In Bordro
					AddMoney(Item, Item & " Bordro PEK Toplamı", If(NewLine, "nl", ""))
					NewLine = Not NewLine
				Next
				SetSize(720, 512)
			Case EventType.Shown
				Buttons.Show("Save")
			Case EventType.Save
				If Check("Tarih", Not IsValidDate(), "Bordro tarihi geçersiz.") Then Exit Sub
				For Each Item As Object In Bordro
					If Not IsEmpty(Item) Then Arguments("af").BordroEkle(Mid(Input("Tarih"), 3, 4) & "/" & Mid(Input("Tarih"), 1, 2) & "/01", Item, Input(Item)) : Result = True
				Next
				Close()
		End Select
	End Sub

	Function IsValidDate() As Boolean
		Dim Text As String = Input("Tarih")
		If Len(Text) <> 6 Then Return False
		Dim Ay As Integer = Val(Mid(Text, 1, 2))
		If Ay < 1 Or Ay > 12 Then Return False
		Dim Yil As Integer = Val(Mid(Text, 3, 4))
		If Yil > 2009 And Ay > 6 Then Return False
		Return True
	End Function

End Class

Public Class IsciBorcuHesaplama2009
	Inherits ProcessDialog

	Public Overrides Sub GenericEvent(ByVal e As ProcessEventArgs)
		Select Case e.EventType
			Case EventType.Initialize
				Text = "İşçi Borcu Hesaplama"
				InitialHelp = "Borç hesaplama dönemini girin."
				AddField("Donem[name=Donem1;label=Baş.Dönem]", "", "197601")
				AddField("Donem[name=Donem2;label=Bit.Dönem]", "nl", "200906")
				SetSize(400, 300)
			Case EventType.Shown
				Buttons.Show("Next")
			Case EventType.Save
				ReturnResult(Input("Donem1") & Input("Donem2"))
		End Select
	End Sub

End Class
